65d31fb340d8196bf0f9d27020ca9eee068e5114,src/main/org/codehaus/groovy/transform/stc/StaticTypeCheckingVisitor.java,StaticTypeCheckingVisitor,storeType,#Expression#ClassNode#,702
Before Change
private void storeType(Expression exp, ClassNode cn) {
exp.putNodeMetaData(StaticTypesTransformation.StaticTypesMarker.INFERRED_TYPE, cn);
if (exp instanceof VariableExpression) {
final Variable accessedVariable = ((VariableExpression) exp).getAccessedVariable();
if (accessedVariable != null && accessedVariable != exp && accessedVariable instanceof VariableExpression) {
After Change
private void storeType(Expression exp, ClassNode cn) {
ClassNode oldValue = (ClassNode) exp.putNodeMetaData(StaticTypesTransformation.StaticTypesMarker.INFERRED_TYPE, cn);
if (oldValue!=null) {
// this may happen when a variable declaration type is wider than the subsequent assignment values
// for example :